const tencentcloud = require("tencentcloud-sdk-nodejs")
const Config = require("../config")
// 导入对应产品模块的client models。
const smsClient = tencentcloud.sms.v20210111.Client
/* 实例化要请求产品(以sms为例)的client对象 */
const client = new smsClient({
    credential: {
        /* 为了保护密钥安全，建议将密钥设置在环境变量中或者配置文件中。
         * 硬编码密钥到代码中有可能随代码泄露而暴露，有安全隐患，并不推荐。
         * CAM密匙查询: https://console.tencentcloud.com/cam/capi */
        secretId: Config.TX_SMS.secretId,
        secretKey: Config.TX_SMS.secretKey,
    },
    /* 必填：地域信息，根据您选择的国际站地域，如您选择的是新加坡国际站，则应该填入字符串ap-singapore，地域列表可参考https://intl.cloud.tencent.com/document/api/382/40466?lang=en#region-list */
    region: Config.TX_SMS.region,
    /* 非必填:
     * 客户端配置对象，可以指定超时时间等配置 */
    profile: {
        /* SDK默认用TC3-HMAC-SHA256进行签名，非必要请不要修改这个字段 */
        signMethod: "HmacSHA256",
        httpProfile: {
            reqMethod: "POST", // 请求方法
            reqTimeout: 10, // 请求超时时间，默认60s
            endpoint: "sms.tencentcloudapi.com"
        },
    },
})

exports.sendTxSmsCode = (pm) => {
    return new Promise((resolve, reject) => {
        const params = {
            SmsSdkAppId: Config.TX_SMS.smsSdkAppId,
            SignName: Config.TX_SMS.signName,
            ExtendCode: "",
            SenderId: "",
            SessionContext: "",
            PhoneNumberSet: pm.phone.split(",").map(i => `+86${i}`),
            TemplateId: Config.TX_SMS.templateId,
            TemplateParamSet: [pm.code, '3'],
        }
        client.SendSms(params, function (err, response) {
            if (err) return reject(err)
            resolve(response)
        })
    })
}